package com.docking.heylo.service;

import com.docking.heylo.dao.entity.SysUser;
import com.docking.heylo.web.dto.SysUserDto;
import com.docking.heylo.web.vo.LoginResult;
import com.github.pagehelper.PageInfo;

import java.util.Map;

public interface ISysUserService {

    /***
     * 用户登录
     *
     * @param userDto
     * @return
     */
    LoginResult login(SysUserDto userDto);

    /***
     * 获取登录用户信息
     *
     * @return
     */
    LoginResult userInfo();

    /***
     * 修改当前用户密码
     *
     * @param userDto
     */
    void editPassword(SysUserDto userDto);

    /***
     * 新建用户
     *
     * @param userDto
     */
    void saveSysUser(SysUserDto userDto);

    /***
     * 获取用户列表
     *
     * @param userDto
     * @return
     */
    PageInfo<Map<String,Object>> sysUserList(SysUserDto userDto);

    /***
     * 查看用户信息
     *
     * @param userId
     * @return
     */
    SysUser selectById(Integer userId);

    /***
     * 修改用户信息
     *
     * @param sysUser
     */
    void editUserInfo(SysUserDto sysUser);

    /***
     * 重置用户密码
     *
     * @param sysUser
     */
    void resetPassword(SysUserDto sysUser);

    /***
     * 修改用户状态
     *
     * @param sysUser
     */
    void disableActivation(SysUserDto sysUser);

    /***
     * 根据角色ID统计用户个数
     *
     * @param id
     * @return
     */
    long countByRoleId(Integer id);

    /***
     * 用户注册相关统计
     *
     * @return
     */
    Map<String, Object> registerStatistics();
}
